﻿
Imports System.Data.OleDb


Public Class Alumno
    Private Conexion As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Facultad;Data Source=RAMONS-LAPTOP\SQLEXPRESS")
    Public Sub RegistrarAlumno(ByVal paramDni As String, ByVal paramNombre As String, ByVal paramFechaNac As String, ByVal paramEmail As String, ByVal paramDomicilio As String, ByVal paramEstadoCivil As String)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "insertAlumno" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDni", paramDni))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNombre", paramNombre)) 'Agregamos a la colección de parámetros los parametros que necesita el procedimiento almacenad
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFechaNac", paramFechaNac))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramEmail", paramEmail))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDomicilio", paramDomicilio))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramEstadoCivil", paramEstadoCivil))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        MsgBox("Registrado Exitosamente", MsgBoxStyle.OkOnly, "Aviso")
        Conexion.Close() 'Cerramos la conexion


    End Sub


    Public Function BuscarAlumno(ByVal paramDni As String) As DataSet

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "buscarDatosAlumno" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDni", paramDni)) 'Agregamos a la 

        Dim ds As New DataSet
        Dim DA As New OleDbDataAdapter(comando)
        Conexion.Open() 'Abrimos la conexion a la base de datos
        DA.Fill(ds, "Alumno")
        Conexion.Close() 'Cerramos la conexion
        Return ds
    End Function


    Public Sub ModificarAlumno(ByVal paramDni As String, ByVal paramNombre As String, ByVal paramFechaNac As String, ByVal paramEmail As String, ByVal paramDomicilio As String, ByVal paramEstadoCivil As String)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "modificarAlumno" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDni", paramDni))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramNombre", paramNombre)) 'Agregamos a la colección de parámetros los parametros que necesita el procedimiento almacenad
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramFechaNac", paramFechaNac))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramEmail", paramEmail))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDomicilio", paramDomicilio))
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramEstadoCivil", paramEstadoCivil))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub

    Public Sub EliminarAlumno(ByVal paramDni As String)

        Dim comando As New OleDb.OleDbCommand() 'Este objeto se encarga de ejecutar consultas sql a la base de datos
        comando.CommandType = CommandType.StoredProcedure 'El comando ejecutará un procedimiento almacenado
        comando.Connection = Me.Conexion 'Indicamos al objeto comando a donde se conectará a través del objeto Conexion

        comando.CommandText = "eliminarAlumno" 'El nombre del procedimiento almacenado
        comando.Parameters.Add(New OleDb.OleDbParameter("@paramDni", paramDni))

        Conexion.Open() 'Abrimos la conexion a la base de datos
        comando.ExecuteNonQuery() 'Ejecutamos la consulta SQL. No devuelve valores, ya que es un insert
        Conexion.Close() 'Cerramos la conexion
    End Sub


    Public Function obtenerAlumnos() As DataSet
        Conexion.Open()
        Dim comando As New OleDbCommand("obtenerAlumno", Conexion)
        comando.CommandType = CommandType.StoredProcedure
        Dim ds As New DataSet()
        Dim DA As New OleDbDataAdapter(comando)
        DA.Fill(ds, "Alumnos")
        Conexion.Close()
        Return ds
    End Function
End Class
